#!/bin/bash

file_path=$(dirname "$(readlink -f "$0")")

# license的ip
licenseHost="10.10.24.128"
# license的port
licensePort="27111"

# 项目源码路径
sourcePath=$file_path

# 项目类型
projectType="BUILD_SCRIPT"

#分析项目需要参数
language="C"

# 分析引擎路径
#分析引擎可以是单独安装的 ikcmd_v24.**.zip 包，
#ikPath= <ikcmd_install_dir>

#也可以是 iKloc_Desktop_v24.** 包
#ikPath= <iKloc_Desktop_install_dir>/resources/static

# ikPath="/home/ctx/ikcmd_v24.3.8.100_win64"
ikPath="/home/hurun/home/hurun/ikcmd_v24.3.8.100_linux64/ikcmd"

#设置系统临时环境变量
export PATH=$ikPath/bin:$PATH


echo "开始分析..."
echo "-----------创建项目-----------"

ikcmd.sh create --language $language --lserver-host $licenseHost --lserver-port $licensePort --client deskClient --project-type $projectType

echo "-----------导入规则配置文件-----------"
# 规则配置文件可以在 iKloc 服务端导出（.djson）或者在 iKloc Desktop 中导出（.ujson）
# cp -r c.ujson .ikloc/ruleset/c/
# ikcmd.sh set-ruleconf --language $language

echo "-----------生成编译配置文件-----------"
# clean 脚本：此处 <clean_command> 需要替换为代码的 clean 命令。例如 make clean;
# 也可以将生成 makefile 的前置步骤放在clean 命令中，例如： cmake . && make clean 
# cleanOption="make clean"
cleanOption="idf.py fullclean"

#  编译脚本 此处 <build_command> 替换为代码的编译命令,例如 make
# compileOption="make -j4"
compileOption="idf.py build"

ikcmd.sh generate-buildspec --project-type $projectType --compile-option "$compileOption" --clean-option "$cleanOption"

echo "-----------执行分析-----------"
ikcmd.sh analysis --plugin-mode true --language $language --incremental false -jnum 4

echo "-----------输出将结果到文件-----"
ikcmd.sh list -F xml -o New_TC_static.xml

echo "开始分析完成。"
